package com.hou.netty.tcp02.server;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;

/*
 * 服务端处理数据类
 * */
// SimpleChannelInboundHandler: 只处理入站消息(接受到的)
public class ServerHandler extends SimpleChannelInboundHandler<String> {
    //CTRL+O: 重写父类方法
    //连接被建立,准备通信时调用此方法
    @Override
    public void channelActive(ChannelHandlerContext ctx) throws Exception {
        System.out.println("连接成功.....");
    }

    //对数据进行处理
    @Override
    protected void channelRead0(ChannelHandlerContext channelHandlerContext, String str) throws Exception {
        //由于服务端初始化使用了String编解码,所以可以直接接受或者发送String类型的数据
        System.out.println("服务端收到数据:" + str);
        //返回数据给客户端     Ctrl+Alt+V :自动补全返回值
        channelHandlerContext.writeAndFlush("6666666666"); //发送给客户端,必须带换行符
    }

    //捕获异常
    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        cause.printStackTrace();//打印信息
        ctx.close();//关闭通道
    }
}
